#define  _CRT_SECURE_NO_WARNINGS 1

//二维数组

#include<stdio.h>

//int main()
//{
//    //二维数组初始化
//    //int a[2][3] = { {1,2,3},{4,5,6} };//完全初始化
//    //int c[2][3] = { 1,2,3,4,5,6 };//完全初始化
//
//    //int b[2][3] = { 1,2,3,4 };//部分初始化（不完全），从第一行开始填满，剩余的用0填充
//    //int d[2][3] = { {1,2},{3,4} };//部分初始化，按行初始化
//    //int e[2][3] = { 0 };
//
//    //int f[][3] = { {1,2},{3,4},{3,4} };//行可以省略，列不可以省略
//    //初始化可以确定行数，列数无法确定
//
//    //for (i = 0; i < 2; i++)
//    //{
//    //    for (j = 0; j < 3; j++)
//    //    {
//    //        printf("%d ", a[i][j]);
//    //    }
//    //    printf("\n");
//    //}
//
//    //================================================
//
//    //int i = 0;
//    //int j = 0;
//
//    //int arr1[3][5] = { {1,2,3,4,5},{6,7,8,9,10},{11,12,13,14,15} };
//
//    //printf("请输入二维数组元素：\n");
//    //for (i = 0; i < 3; i++)
//    //{
//    //    for (j = 0; j < 5; j++)
//    //    {
//    //        scanf("%d", &arr1[i][j]);
//    //    }
//    //}
//    //for (i = 0; i < 3; i++)
//    //{
//    //    for (j = 0; j < 5; j++)
//    //    {
//    //        printf("%d ", arr1[i][j]);
//    //    }
//    //    printf("\n");
//    //}
//
//    //for (i = 0; i < 3; i++)
//    //{
//    //    for (j = 0; j < 5; j++)
//    //    {
//    //        printf("&arr[%d][%d] = %p\n", i, j, &arr1[i][j]);
//    //    }
//    //    printf("\n");
//    //}
//    //地址是连续的
//
//    //================================================
//
//    //变长数组
//    //C99标准之前，数组大小只能通过常量、常量表达式来确定
//    //在C99标准中引入：变长数组，使得数组大小可以使用变量来指定
//    //长度取决于变量n的值，编译时无法确定，运行时才能确定，所以不能初始化
//    //变长数组的意思是可以使用变量来指定数组的长度，而不是说数组大小是可变的，数组的大小一旦确定就不能再变化了。
//
//    int n = 0;
//    scanf("%d", &n);
//
//    int arr[n];
//    //int arr1[n] = {0,1,2,3,4,5}; //变长数组不能初始化
//
//    printf("请输入数组内容：\n");
//    for (int i = 0; i < n; i++)
//    {
//        scanf("%d", &arr[i]);
//    }
//    for (int i = 0; i < n; i++)
//    {
//        printf("%d ", arr[i]);
//    }
//
//
//
//    return 0;
//}